package com.huayun.plugin.bk.service;

public class FiberMaterial {
    private String materialName;  //材料名称
    private String materialCode;  //材料牌号
    private double tensileModulus;  //拉伸弹性模量（GPa）
    private double compressiveModulus;  //压缩弹性模量（GPa）
    private double poissonRatio;  //泊松比μ
    private double shearModulus;  //剪切模量（GPa）
    private double density;  //密度（g/cm3）
    private double primaryThermalExpansion;  //主向热膨胀系数
    private double secondaryThermalExpansion;  //次向热膨胀系数
    private double plyThickness;  //单层厚度（mm）

    /**
     * 构造函数，用于初始化 FiberMaterial 对象。
     *
     * @param materialName               材料名称
     * @param materialCode               材料牌号
     * @param tensileModulus             拉伸弹性模量（单位：GPa）
     * @param compressiveModulus         压缩弹性模量（单位：GPa）
     * @param poissonRatio               泊松比（无量纲）
     * @param shearModulus               剪切模量（单位：GPa）
     * @param density                    密度（单位：g/cm³）
     * @param primaryThermalExpansion    主向热膨胀系数（单位：1/℃）
     * @param secondaryThermalExpansion  次向热膨胀系数（单位：1/℃）
     * @param plyThickness               单层厚度（单位：mm）
     */
    public FiberMaterial(String materialName, String materialCode, double tensileModulus, double compressiveModulus, double poissonRatio, double shearModulus, double density, double primaryThermalExpansion, double secondaryThermalExpansion, double plyThickness) {
        this.materialName = materialName; //材料名称
        this.materialCode = materialCode;
        this.tensileModulus = tensileModulus;
        this.compressiveModulus = compressiveModulus;
        this.poissonRatio = poissonRatio;
        this.shearModulus = shearModulus;
        this.density = density;
        this.primaryThermalExpansion = primaryThermalExpansion;
        this.secondaryThermalExpansion = secondaryThermalExpansion;
        this.plyThickness = plyThickness;
    }

    /**
     * 获取材料名称。
     *
     * @return 材料名称
     */
    public String getMaterialName() {
        return materialName;
    }

    /**
     * 设置材料名称。
     *
     * @param materialName 材料名称
     */
    public void setMaterialName(String materialName) {
        this.materialName = materialName;
    }


    /**
     * 获取材料牌号。
     *
     * @return 材料牌号
     */
    public String getMaterialCode() {
        return materialCode;
    }

    /**
     * 设置材料牌号。
     *
     * @param materialCode 材料牌号
     */
    public void setMaterialCode(String materialCode) {
        this.materialCode = materialCode;
    }


    /**
     * 获取拉伸弹性模量。
     *
     * @return 拉伸弹性模量（单位：GPa）
     */
    public double getTensileModulus() {
        return tensileModulus;
    }

    /**
     * 设置拉伸弹性模量。
     *
     * @param tensileModulus 拉伸弹性模量（单位：GPa）
     */
    public void setTensileModulus(double tensileModulus) {
        this.tensileModulus = tensileModulus;
    }


    /**
     * 获取压缩弹性模量。
     *
     * @return 压缩弹性模量（单位：GPa）
     */
    public double getCompressiveModulus() {
        return compressiveModulus;
    }

    /**
     * 设置压缩弹性模量。
     *
     * @param compressiveModulus 压缩弹性模量（单位：GPa）
     */
    public void setCompressiveModulus(double compressiveModulus) {
        this.compressiveModulus = compressiveModulus;
    }


    /**
     * 获取泊松比。
     *
     * @return 泊松比（无量纲）
     */
    public double getPoissonRatio() {
        return poissonRatio;
    }

    /**
     * 设置泊松比。
     *
     * @param poissonRatio 泊松比（无量纲）
     */
    public void setPoissonRatio(double poissonRatio) {
        this.poissonRatio = poissonRatio;
    }


    /**
     * 获取剪切模量。
     *
     * @return 剪切模量（单位：GPa）
     */
    public double getShearModulus() {
        return shearModulus;
    }

    /**
     * 设置剪切模量。
     *
     * @param shearModulus 剪切模量（单位：GPa）
     */
    public void setShearModulus(double shearModulus) {
        this.shearModulus = shearModulus;
    }


    /**
     * 获取密度。
     *
     * @return 密度（单位：g/cm³）
     */
    public double getDensity() {
        return density;
    }

    /**
     * 设置密度。
     *
     * @param density 密度（单位：g/cm³）
     */
    public void setDensity(double density) {
        this.density = density;
    }

    /**
     * 获取主向热膨胀系数。
     *
     * @return 主向热膨胀系数（单位：1/℃）
     */
    public double getPrimaryThermalExpansion() {
        return primaryThermalExpansion;
    }

    /**
     * 设置主向热膨胀系数。
     *
     * @param primaryThermalExpansion 主向热膨胀系数（单位：1/℃）
     */
    public void setPrimaryThermalExpansion(double primaryThermalExpansion) {
        this.primaryThermalExpansion = primaryThermalExpansion;
    }

    /**
     * 获取次向热膨胀系数。
     *
     * @return 次向热膨胀系数（单位：1/℃）
     */
    public double getSecondaryThermalExpansion() {
        return secondaryThermalExpansion;
    }

    /**
     * 设置次向热膨胀系数。
     *
     * @param secondaryThermalExpansion 次向热膨胀系数（单位：1/℃）
     */
    public void setSecondaryThermalExpansion(double secondaryThermalExpansion) {
        this.secondaryThermalExpansion = secondaryThermalExpansion;
    }

    // Getter and Setter for plyThickness
    /**
     * 获取单层厚度。
     *
     * @return 单层厚度（单位：mm）
     */
    public double getPlyThickness() {
        return plyThickness;
    }

    /**
     * 设置单层厚度。
     *
     * @param plyThickness 单层厚度（单位：mm）
     */
    public void setPlyThickness(double plyThickness) {
        this.plyThickness = plyThickness;
    }
}